
                    <h3><a name="t0"></a><strong>单选题</strong></h3> 
<hr> 
<p>31.当标记了@Reuseable的<a href="https://so.csdn.net/so/search?q=%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6&amp;spm=1001.2101.3001.7020" target="_blank" class="hl hl-1" data-report-view="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;dest&quot;:&quot;https://so.csdn.net/so/search?q=%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6&amp;spm=1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;searchword\&quot;:\&quot;自定义组件\&quot;}&quot;}" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;dest&quot;:&quot;https://so.csdn.net/so/search?q=%E8%87%AA%E5%AE%9A%E4%B9%89%E7%BB%84%E4%BB%B6&amp;spm=1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;searchword\&quot;:\&quot;自定义组件\&quot;}&quot;}" data-tit="自定义组件" data-pretit="自定义组件">自定义组件</a>实现了组件复用后，这个组件的复用范围是什么?（A）</p> 
<p><strong>A.标记了@Reuseable的自定义组件的父组件范围内</strong></p> 
<p>B.整个页面都可以复用</p> 
<p>C.标记了@Reuseable的自定义组件的外层容器节点范围内</p> 
<p>D.整个应用内都可以复用</p> 
<hr> 
<p>32.ArkuI组件复用的作用机制是减少了什么时间从而降低了丢帧率?</p> 
<p><span style="color:#0d0016;"><strong>组件节点和对象的创建时间</strong></span></p> 
<hr> 
<p>33.下面持续集成描述哪项是错误的:</p> 
<p><strong>持续集成就是持续编译，二者异曲同工</strong></p> 
<hr> 
<p>34.在moduleA(HAP类型)中有一个图片名为<span class="words-blog hl-git-1" data-report-view="{&quot;spm&quot;:&quot;1001.2101.3001.10283&quot;,&quot;extra&quot;:&quot;{\&quot;words\&quot;:\&quot;image\&quot;}&quot;}" data-tit="image" data-pretit="image">image</span>.png，在moduleB(HAR类型)也存在一个图片名为image.png，而moduleA依赖于moduleB，那么在moduleA的编译产物hap包中，image.png存在情况是:</p> 
<p><strong>仅存在moduleA的image.png</strong></p> 
<hr> 
<p>35.&nbsp;以下关于应用架构技术选型说法不正确的是(C)</p> 
<p>A.&nbsp;元服务和应用可以共用一个代码工程，采用多目标产物构建方式，构建出应用和元服务两个产物，再于上架。</p> 
<p>B.&nbsp;对于初始版本的应用，功能比较简单，可以考虑采用单HAP的上多个HAR工程建代码工程。</p> 
<p><strong>C.&nbsp;随着业务的发展，应用功能会越来越多，某些功能可以做成动态加载，动态加载的模块采用HAR工程来构建，方便复用和共亭</strong><br> D.&nbsp;一些应用的扩展能力，比如备份、服务卡片，可以采用ExtensionAbility微成单独的feature HAP包，独立分发。</p> 
<hr> 
<p>36.&nbsp;某App有A、B、C、D四个团队分别负责Module&nbsp;A、Module&nbsp;B 、Module&nbsp;C和Module&nbsp;D四个业务模块。随着业务的发展。Module&nbsp;A需要跳转到Module&nbsp;B、Module&nbsp;C的页面:Module&nbsp;B需要跳转到Module&nbsp;C、Module&nbsp;D的界面，Module&nbsp;C需要跳转到Module&nbsp;A的界面，Module&nbsp;D需要跳转到Module&nbsp;B和Module&nbsp;C的界面。由于复杂的依赖关系，导致一旦有变化就需要知会各个团队，所以该团队的架构师想要解糯各个业务模块，以下哪些做法是不推荐的(C)</p> 
<p>A.&nbsp;采用RouterModule作为中介者并用动态import解载各个业多模块。</p> 
<p>B.&nbsp;可以采用Navigation作为页面导航根容器，将其放在entry中，其他Module&nbsp;的页面作为Navigation的子页面。</p> 
<p><strong>C.&nbsp;采用静态import方式引入对应跳转的页面。</strong></p> 
<p>D.&nbsp;在RouterModule中采用路由表方式解聘各个业务授块</p> 
<p></p> 
<hr> 
<p>37.某App依赖了3个ohpm库，这3个库占用的体积都比较大。在App的技术架构中，有多个hap和多个hsp均依赖这3个库，为了减少app的首包大小，以下哪些做法是无效的?</p> 
<p><span style="color:#0d0016;"><strong>将这3个ohpm库封装到har包中，并对外提供必要的接口</strong></span></p> 
<hr> 
<p>38.关于长时任务开发使用的接口是</p> 
<p><strong>使用startBackgroundRunning申请任务，使用stopBackgroundRunning取消任务</strong></p> 
<hr> 
<p>39.hiAppEvent提供的Watcher接口，需要订阅到OS的崩溃事件，正确的实现方式</p> 
<blockquote> 
 <p><strong>hiAppEvent.addWatcher({<!-- --></strong></p> 
 <p><strong>name: "watcher",</strong></p> 
 <p><strong>appEventFilters: [</strong></p> 
 <p><strong>{<!-- --></strong></p> 
 <p><strong>domain: hiAppEvent.domain.OS,</strong></p> 
 <p><strong>names: [hiAppEvent.event.APP_CRASH]</strong></p> 
 <p><strong>}</strong></p> 
 <p><strong>],</strong></p> 
 <p><strong>onReceive: (domain: string, appEventGroups: Array&lt;hiAppEvent.AppEventGroup&gt;) =&gt; {<!-- --></strong></p> 
 <p><strong>}</strong></p> 
 <p><strong>})</strong></p> 
</blockquote> 
<hr> 
<p>40.以下关于Taskpool和Worker的描述正确的是（A）</p> 
<p><strong>A.TaskPool支持任务延时执行</strong></p> 
<p>B.开发者需要自行管理taskpool的数量及生命周期</p> 
<p>C.Worker自行管理生命周期，开发者无需关心任务负载高低</p> 
<p>D.TaskPool和Worker的任务执行时长上限都是无限制</p> 
<hr> 
<p>41、以下a1\a2\a3\a4哪些赋值语句在ArkTS中是合法的？(<strong>a2</strong>)</p> 
<blockquote> 
 <p>class A{v:number =0;}</p> 
 <p>class B extends A{u:string ='';}</p> 
 <p>class c{v:number =0;}</p> 
 <p>let a1:A = new C();</p> 
 <p>let a2:A= new B();</p> 
 <p>let a3: B = new A();</p> 
 <p>let a4: C= new B();</p> 
</blockquote> 
<hr> 
<p>42、ArkTs支持以下哪些函数？</p> 
<p>A. Object.isPrototypeOf();</p> 
<p>B. Object.getOwnPropertySymbols();</p> 
<p><strong>C. Object.keys();</strong></p> 
<p>D.Object.isExtensible();</p> 
<hr> 
<p>43、张工正在使用DevEco studio进行一个复杂项目的开发工作，项目中包含了成千上万行代码且涉及众多模块。在重构代码的过程中，他意识到需要对一个核心类名进行更改，考虑到这个类在整个项目中被广泛引用，手动修改不仅耗时且容易出错。基于DevEco studio提供的代码编辑功能，以下哪个描述最准确地概述了张工如何高效且安全地完成对类名的更改，同时确保整个项目中所有相关引用同步更新?（B ）</p> 
<p>A、张工需打开项目搜索功能，输入旧类名找到所有匹配项，逐一进行替换，完成更名操作。</p> 
<p><strong>B、张工选中需要更名的类名，使用快捷键Shift+F6或右键菜单Refactor -&gt;Rename，在弹出框中输入新名称并选择替换范围后，点击“Refactor”完成更名操作，确保所有相关引用自动更新。</strong></p> 
<p>C、张工只需简单选中需要更名的类名，按下Delete键删除后直接输入新名称，DevEco Studio会自动识别并更新所有引用。</p> 
<p>D、张工在<span class="edu-hl hl hl-1" data-report-view="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;word\&quot;:\&quot;代码编辑器\&quot;}&quot;}" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;word\&quot;:\&quot;代码编辑器\&quot;}&quot;}" data-tit="代码编辑器" data-pretit="代码编辑器">代码编辑器</span>中右键点击该类名，选择“Find Usage”，手动浏览所有引用位置并逐一修改为新名称。</p> 
<hr> 
<p>44在一个包含多个模块(如entry、feature、service、<span class="words-blog hl-git-1" data-report-view="{&quot;spm&quot;:&quot;1001.2101.3001.10283&quot;,&quot;extra&quot;:&quot;{\&quot;words\&quot;:\&quot;library\&quot;}&quot;}" data-tit="library" data-pretit="library">library</span>等)的大型Harmonyos应用项目中，如果某个模块feature对另外一个公共库模块1ibrary有依赖，如何通过DevEcostudio正确配置项目依赖关系?(C)</p> 
<p>A无需配置，直接在代码中编写import xxx from'library'</p> 
<p>B在library的oh-package,json5文件的dependencies字段中配置feature的依赖</p> 
<p><strong>C在feature的oh-package.json5文件的dependencies字段中配置library的依赖</strong></p> 
<p>D在feature的build-profile.json5文件的dependencies字段中配置library的依赖</p> 
<hr> 
<p>45在使用DevEco studio的Profiler进行Harmonyos应用或服务内存管理优化时，以下哪个描述最准确地概述了“Allocation Insight”功能在识别和解决内存问题中的作用?&nbsp; (B)</p> 
<p>A Allocation Insight详细展示应用运行时的每条语句柄分配记录，便于开发者逐一检查内存使用，但不提供内存泄漏的自动识别功能</p> 
<p><strong>B Allocation Insight通过分析应用服务运行时的内存分配及使用情况，辅助定位内存泄漏、内存抖动和溢出问题，支持优化内存使用</strong></p> 
<p>C Allocation Insight主要关注于内存碎片整理，减少内存分配的不连续性问题，对内存泄漏和溢出问题的检测不是其主要功能</p> 
<p>D Allocation Insight仅提供内存分配总量的概览，帮助开发者宏观了解内存使用趋势，但对于具体泄漏或抖动问题无能为力</p> 
<hr> 
<p>46项目需要为不同的设备形态(如手机、智能手表)提供定制化构建。请说明如何在DevEcostudio中设置不同的构建配置，以生成针对不同设备的hap包?(A)</p> 
<p><strong>A 在模块级别build-rofile.json5定义多个target，在每个target的config/deviceType中定义不同的设备类型</strong></p> 
<p>B 在工程级别build-profile.json5定义多个product，在每个product的config/distributionFilter中定义不同的设备类型</p> 
<p>C 在模块级别build-profile,json5定义多个target，在每个target的config/distributionFilter中定义不同的设备类型</p> 
<p>D 在工程级别build-profile.json5定义多个product，在每个product的config/deviceType中定义不同的设备类型</p> 
<hr> 
<p>47下面的配置一共存在有几处错误？(1处)</p> 
<blockquote> 
 <p>module.json5配置文件:</p> 
 <p>{</p> 
 <p>"module":{"name": "entry",</p> 
 <p>"abilities":[{</p> 
 <p>"name": "EntryAbility",</p> 
 <p>"srcEntry":"./ets/entryability/EntryAbility.ets",</p> 
 <p>"skills":[</p> 
 <p>{</p> 
 <p>"entities":[ "entity.system.home"],</p> 
 <p>"actions":["ohos.want.action.home"]</p> 
 <p>]}],</p> 
 <p>"metadata":[{</p> 
 <p>"name": "ohos.entry.shortcuts",</p> 
 <p>"resource":"$profile:shortcuts_config"}</p> 
 <p>]}]}}</p> 
</blockquote> 
<blockquote> 
 <p>在/resources/base/profile/目录下配置shortcuts_config.json配置文件:</p> 
 <p>{</p> 
 <p>"shortcuts":[</p> 
 <p>{"shortcutId": "id_test1",</p> 
 <p>"label":"shortcutLabel",</p> 
 <p>"icon":"$media:shortcutIcon",</p> 
 <p>"wants":[{</p> 
 <p>"bundleName":"com.ohos.hello",</p> 
 <p>"moduleName": "entry",</p> 
 <p>"abilityName": "EntryAbility"</p> 
 <p>}]}]}</p> 
</blockquote> 
<hr> 
<p>48应用开发中使用的各类资源文件，需要放入特定子目录中存储管理，以下关于资源说法错误的是（A）</p> 
<p><strong>A rawfile目录，支持创建多层子目录，子目录名称可以自定义，文件夹内可以自由放置各类资源文件。目录中的资源文件会被编译成二进制文件，并赋予资源文件ID。</strong></p> 
<p>B resfile目录，应用安装后，resfile资源会被解压到应用沙箱路径，通过Context属性resourceDir获取到resfile资源目录后，可通过文件路径访问。</p> 
<p>C stage模型多工程情况下，共有的资源文件放到AppScope下的resources目录。</p> 
<p>D base目录是默认存在的目录，二级子目录<span class="words-blog hl-git-1" data-report-view="{&quot;spm&quot;:&quot;1001.2101.3001.10283&quot;,&quot;extra&quot;:&quot;{\&quot;words\&quot;:\&quot;element\&quot;}&quot;}" data-tit="element" data-pretit="element">element</span>用于存放字符串、颜色、布尔值等基础元素，media、profile存放媒体、动画、布局等资源文件。</p> 
<hr> 
<p>49通过aa工具拉起com.example.test的EntryAbility，并传参给EntryAbility，具体参数是number类型的[key1，1][key2,2]和string类型的[key3,teststring][key4,''],下边ABCD哪个aa 命令是正确的？（D）</p> 
<p>A aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4”</p> 
<p>B aa start -b com.example.test -a EntryAbility --pi key1 1 key2 2 --ps key3 testString --psn key4</p> 
<p>C aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --ps key4</p> 
<p><strong>D aa start -b com.example.test -a EntryAbility --pi key1 1 --pi key2 2 --ps key3 testString --psn key4</strong></p> 
<hr> 
<p>50应用发生崩溃，(C)接口可以获取到崩溃时调用栈&nbsp;&nbsp;</p> 
<p>A、hiDebug</p> 
<p>B、hiTraceMeter</p> 
<p><strong>C、hiAppEvent</strong></p> 
<p>D、hiLog</p> 
<hr> 
<p>51关于ArkUI的ForEach和LazyForEach，下列说法错误的是?(B)</p> 
<p>AForEach和LazyForEach会根据定义的键值生成规则为数据源的每个数组项生成唯一键值，并创建相应的组件。</p> 
<p><strong>B长列表滚动场景，优先使用ForEach。</strong></p> 
<p>C当在滚动容器中使用了LazyForEach，框架会根据滚动容器可视区域按需创建组件，当组件滑出可视区域外时，框架会进行组件销毁回收以降低内存占用。</p> 
<p>DLazyForEach需要配合cachedCount和组件复用一起使用，以达到性能的最优表现。</p> 
<hr> 
<p>52为了提高性能，所以List组件支持懒加载，可以通过配置cachedcount属性设置缓存列表项的数量。当我们不设置List的属性cachedcount时，该属性的默认值是?</p> 
<p><strong>1</strong></p> 
<hr> 
<p>53 在Harmony0s应用开发中，当开发者遇到需要分析Release版本应用的崩溃或异常堆栈信息时，为了准确地将堆栈追踪信息对应到源代码的具体位置，以下哪个描述是正确的做法或理解？（B）</p> 
<p>A、开发者需手动将Release构建生成的so文件与源代码进行映射，配合第三方工具进行堆栈信息还原，虽然过程繁琐，但最终能定位到问题代码位置</p> 
<p><strong>B、DevEco Studio提供的Release应用堆栈解析功能，要求开发者在遇到问题时，需上传构建产物中的特定文件B(如so、source map、nameCache等)到指定工具或界面，借助这些文件辅助解析堆栈信息，实现从Release堆栈到源码的映射，便于快速定位问题</strong></p> 
<p>C、因为Release应用经过优化和去除Debug信息，直接从堆栈跟踪到源代码行号是不可能的，开发者只能依靠日志信息手工推测问题所在</p> 
<p>D、DevEco Studio通过集成的Release应用堆栈解析功能，自动利用构建时产生的so文件、source map文件nameCache文件等，无需额外操作即可直接在Release应用中提供详细的源码级堆栈追踪信息</p> 
<hr> 
<p>54下面持续交付&amp;<span class="edu-hl hl hl-1" data-report-view="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;word\&quot;:\&quot;持续部署\&quot;}&quot;}" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;word\&quot;:\&quot;持续部署\&quot;}&quot;}" data-tit="持续部署" data-pretit="持续部署">持续部署</span>描述哪个是正确的:(B)</p> 
<p>A.持续交付可以随时随地部署到生产环境</p> 
<p><strong>B.持续交付(CD,Continuous Delivery):指的是，频繁的将软件的新版本，交付给质量团队或者用户，以供评审。如果评审通过，代码就进入生产阶段。</strong></p> 
<p>它强调的是，不管怎么更新，<span class="edu-hl hl hl-1" data-report-view="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;word\&quot;:\&quot;软件\&quot;}&quot;}" data-report-click="{&quot;spm&quot;:&quot;1001.2101.3001.7020&quot;,&quot;extra&quot;:&quot;{\&quot;word\&quot;:\&quot;软件\&quot;}&quot;}" data-tit="软件" data-pretit="软件">软件</span>是随时随地可以交付的。</p> 
<p>C.在持续交付实践中，要考虑处理故障回滚和紧急修复，以确保系统在出现问题时能够快速恢复和修复。</p> 
<p>D.持续部署是将代码库中的任何更改都应该自动且快速地投入生产环境。持续部署等同于持续交付。</p> 
<hr> 
<p>55以下关于应用架构技术选型说法不正确的是(A) HSP</p> 
<p><strong>A随着业务的发展，应用功能会越来越多，某些功能可以做成动态加载，动态加载的模块采用HAR工程来构建，方便复用和共享。</strong></p> 
<p>B对于初始版本的应用，功能比较简单，可以考虑采用单HAP加上多个HAR工程构建代码工程,</p> 
<p>C元服务和应用可以共用一个代码工程，采用多目标产物构建方式，构建出应用和元服务两个产物，用于上架。</p> 
<p>D一些应用的扩展能力，比如备份、服务卡片，可以采用ExtensionAbility做成单独的feature HAP包，独立分发。</p> 
<hr> 
<p>56以下对系统兼容性的理解正确的是(C)</p> 
<p>A安全法律法规等不可控因素会导致系统非兼容性变更，开发者需要积极适配</p> 
<p>B系统能力都会保持绝对的兼容性，不能因为任何非兼容性的修改而导致开发者成本上升</p> 
<p><strong>C已发布的系统能力有可能会发生非兼容性变更，比如新增特性或修改问题导致的行为不兼容，这种情况下应用需要关注changelog并进行适配。</strong></p> 
<p>D应用不需要关注系统的兼容性变化，那都是系统开发人员需要关注的事情</p> 
<hr> 
<p>57已知下列代码PageOne页面为navigation中的某一子页面，依次点击PageOne页面中toPageTwo按钮，PageTwo页面中toPageOne按钮，此时点击get按钮获取全部名为name的NavDestination页面的位置索引为</p> 
<p><strong>[0,2]</strong></p> 
<hr> 
<p>58关于短时任务开发使用的接口是（D）</p> 
<p>A使用startBackgroundRunning申请任务，使用stopBackgroundRunning取消任务</p> 
<p>B使用publishReminder发布一个提醒类通知，使用canceIReminder取消一个指定的提醒类通知</p> 
<p>C使用startWork申请任务，使用stopWork取消任务，使用getWorkStatus获取任务状态</p> 
<p><strong>D使用requestSuspendDelay申请任务，使用getRemainingDelayTime获取任务剩余时间</strong></p> 
<hr> 
<p>59如果想让outer button响应事件，hitTestBehavior该怎么配置 (C)</p> 
<blockquote> 
 <p>import promptAction from '@ohos.promptAction';</p> 
 <p>// xxx.ets</p> 
 <p>@Entry</p> 
 <p>@Component</p> 
 <p>struct HitTestBehaviorExample {</p> 
 <p>&nbsp;&nbsp;build() {</p> 
 <p>&nbsp;&nbsp;&nbsp;// outer stack</p> 
 <p>&nbsp;&nbsp;&nbsp;Stack() {</p> 
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Button('outer button')</p> 
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.onClick((event) =&gt; {</p> 
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;promptAction.showToast({ message:'click事件触发------++++2‘ });</p> 
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})</p> 
 <p>&nbsp;&nbsp;&nbsp;// inner stack</p> 
 <p>&nbsp;&nbsp;&nbsp;stack() {</p> 
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Button('inner button')</p> 
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.onTouch((event) =&gt; {</p> 
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;promptAction.showToast({ message: 'click事件触发------1' });</p> 
 <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})</p> 
</blockquote> 
<p>A.HitTestMode.Default</p> 
<p>B.HitTestMode.Block</p> 
<p><strong>C.HitTestMode.Transparent</strong></p> 
<p>D.HitTestMode.None</p> 
<hr> 
<p>60&nbsp;从桌面冷启动如下应用，点击change按钮5次，整个过程中，代码中的2条log依次出现的次数，最初和最后画面上显示的【num=?】的数字是</p> 
<p><span style="color:#0d0016;"><strong>2，4，1，2</strong></span></p> 
<hr> 
<p></p> 
<p></p>
                